① java类可以调用抽象类的抽象方法吗
抽象类方法的实现是在对应的子类中,抽象类(父类)对象指向子类即可调用,即new 子类而不是本身,这是多态的体现:父类只有函数头声明,而子类通过重写(“覆盖”)完成具体的实现
如public abstract Animal{
void show();
}
public Cat extends Animal{
@override
void show(){
syso ("我是子类cat!");
}
}
main(){
//父类引用指向子类
Animal a=new Cat();
a.show ();
}
}
运行结果:
我是子类cat!
② 子类调用 抽象类里的普通方法
抽象类不能被实例化,想调用里面的普通方法要通过继承,然后实例化子类调用抽象类的普通方法,下面有一段示例代码供你参考
定义一个抽象类 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 关键字实现
③ 抽象类的对象可以调用抽象方法吗,该怎么解决
当然可以,在它被实例化之后,它的抽象方法自然已经被实现过了。
就是说,比如,Fruit类有个方法叫eat,都是抽象的
那么Fruit f = new Banana();
f.eat();
调用的时候,因为已经存在了香蕉(Banana)类,且该类可以被实例化,说明该类里的eat方法已经被实例化过了。
④ 请教java高手,如何在其他类调用抽象类的构造方法,一个抽象类,一个用来实例化对象的测试类
抽象类函数
abstract class Person {
int age;
String name;
abstract void eat();
}
抽象类函数调用
class Chinese extends Person{
void eat(){
System.out.println("我的名字是"+name+",我的年龄是"+age);
}
}
class Test{
public static void main (String[] args){
Person p = new Chinese();
p.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();
}
}
⑥ 怎么别的类中调用抽象类中的方法
抽象类不能实例化吧,不能调用,可以这样新建一个类集继承抽象类,然后实现抽象方法。实例化新建的类,调用相应方法。
⑦ java中怎么具体使用抽象类和接口
//继承抽象类Car并实现接口Gasoline
class MyCar extends Car implements Gasoline{
//定义一个变量模拟当前档位,如1,2,3,4,5,
public int nowShift;
//无参构造方法,默认设置相关属性
public MyCar(){
this.color=Color.red;
this.gearNum=5;
this.tiretype="BridgeStone185ST";
this.engine=(float)1598.5;
}
//自己创建车时指定相关属性
public MyCar(Color c,int gearNum,String tiretype,float engine){
this.gearNum=gearNum;
this.color=c;
this.tiretype=tiretype;
this.engine=engine;
}
public void shiftgear(){
//简单模拟循环档,每次调用时档位加1,加满后归零
nowShift++;
if(nowShift>=5)
nowShift=0;
}
public void brake(){
nowShift=0;
System.out.println("正在刹车...");
}
public void aircon(){
System.out.println("冷气已经打开");
}
public void headlight(){
System.out.println("大灯打开...");
}
public void refuel(){
System.out.println("轿车燃料为:"+FUEL);
}
public void equipment(){
System.out.println("轿车颜色:"+color+" "+"排挡数:"+gearNum+"\n"+"轮胎型号:"+tiretype+" "+"尾气排量:"+engine+" "+"轿车燃料:"+FUEL);
}
public static void main(String[]a){
new MyCar().equipment();
}
}
main()方法里只测试了自定义的equitment()方法,其他的和他一样调用,如果你需要的话、希望对你有帮助
⑧ 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的就一切免谈了。