㈠ java中,抽象类的不带返回值的方法子类该如何直接去调用和访问!
你好,这个分下面几种情况。
1.如果这个方法是一个抽象方法,那么子类需要覆写该方法,然后通过子类对象去调用。
2.如果这个方法是一个private方法,那么子类将访问不到这个方法。
3,如果这个方法是一个普通方法,那么你可以在子类中直接调用。
第三个种类型举个例子:
public abstract class A {
public void add(){ //....}
}
public class B extends A{}
public class Test{
public static void main(String[] args){
B b = new B() ;
b.add() ;
A a = new B() ;
a.add() ;
}
}
㈡ 抽象类中怎么调用接口里面的方法
抽象类不能被实例化,想调用里面的普通方法要通过继承,然后实例化子类调用抽象类的普通方法,下面有一段示例代码供你参考
定义一个抽象类 A
public abstract class A {
abstract int getSum(int a,int b);//抽象方法
int getSum2(int b)
{
int b;
return b;
};//普通方法
}
定义B类继承A类
public class B extends A {
int getSum(int a,int b) { //必须实现父类中的抽象方法的具体细节
int sum=a+b;
return sum;
}
public static void main(String a[]){ //主方法
System.out.println(new B().getSum2(90));//调用普通方法
System.out.println(new B().getSum(2,6));//调用抽象方法也相同
}
}
代码你不要复制,因为标点有中文状态下的可能会报错
希望能解决你的疑问,不过抽象类还有一个特例“接口”,接口要通过implements 关键字实现
㈢ java中怎么调用抽象类里的普通方法
楼上的没有正面回答。想调用basestudent中的非抽象方法load,如果load方法是static的,则可以直接basestudent.load()就可以了;如果是非static的则必须需要一个继承的非抽象类,然后用这个非抽象类的实例来调用load方法,或者这个非抽象类的实例被cast成basestudent,然后调用。
如:继承basestudent的非抽象类:basestudentsub,可以用一下方法调用:
1、basestudentsub
bsds
=
new
basestudentsub();
bsds.load();
2、basestudent
bsd
=
new
basestudentsub();
bsd.load();
当然,也要考虑这个方法应该是public或protected的。如果是private的就一切免谈了。
㈣ 抽象类中如何调方法
对,在子类中去重写它,就可以直接调用了
㈤ 抽象类的对象可以调用抽象方法吗,该怎么解决
当然可以,在它被实例化之后,它的抽象方法自然已经被实现过了。
就是说,比如,Fruit类有个方法叫eat,都是抽象的
那么Fruit f = new Banana();
f.eat();
调用的时候,因为已经存在了香蕉(Banana)类,且该类可以被实例化,说明该类里的eat方法已经被实例化过了。
㈥ 求解 JAVA抽象类引用调用方法要怎么实现
抽象类和接口其实是差不多的,只是类只能继承一个父类,但能同时实现多个接口,接口更多是用于定义一个标准防止出错,而抽象类是因为父类没必要实现具体的方法,而各个子类又有可能用到,所以才有了抽象类
//抽象类Animal并定义一个抽象方法eat()
abstract class Animal{public abstract void eat();}
//定义接口Runner,并定义抽象方法run()
interface Runner{void run();}
//定义接口Swimmer,并定义抽象方法swim()
interface Swimmer{void swim();}
//定义类Person并继承Animal和实现接口Runner、Swimmer
class Person extends Animal implements Runner,Swimmer{
//覆写方法eat()
public void eat() {
System.out.println("我牙好胃好,吃啥都香!");
}
//覆写方法run()
public void run() {
System.out.println("我是飞毛腿,跑步速度极快!");
}
//覆写方法swim()
public void swim() {
System.out.println("我有用技术很好,会蛙泳、自由泳、仰泳、蝶泳……");
}
}
//定义测试类用于测试输出
public class PersonTest {
public static void main(String[] args) {
Person p=new Person();
p.eat();
p.run();
p.swim();
}
}